const express = require('express')
// 引入文件读取fs模块
const fs = require('fs')
const url = require('url')
const moment = require('moment')
const bodyParser =  require('body-parser') // 解析post请求
const app = express()
// 配置框架
app.use('/public', express.static('public'))
//解析JSON格式数据（application/json）     解析后放到req对象的body属性中
//解析文本格式数据（application/x-www-form-urlencoded）
app.use(bodyParser.json())
app.use(bodyParser.urlencoded({extended:false}))

// 配置模版引擎
app.engine('html', require('express-art-template'))
// 路由
app.get('/stu', function (req, res) {
    // 获取数据
   fs.readFile('./db.json','utf-8',function (err,data){
       if(err) res.end('404 not found')
       // 数据过滤
       // console.log( data) // 从文件获取过来的就是字符串
       var stus = JSON.parse(data).stus

       // 渲染首页
       res.render('index.html',{
           stus
       })
   })
})
app.get('/stu/create',function (req,res){
    // 渲染添加学生
    return res.render('post.html',{})
})
app.post('/stu/create',function (req,res){
    let stu = req.body
    console.log(stu)
    // 获取数据库的数据
    fs.readFile('./db.json','utf-8',function (err,data){
        if(err) console.log('server error')
        // 获取旧数据
        let stus = JSON.parse(data).stus
        let d = new Date()
        let date = moment().format("YYYY-MM-D h:mm:ss")
        stu.create_at = date
        stu.id = stus[stus.length-1].id+1 // 最后一个元素的id+1
        // 入数据库
        stus.push(stu)
        // 写入文件中,不能直接写对象,要先转换成字符串
        let stusStr = JSON.stringify({stus})
        fs.writeFile('./db.json',stusStr,function (err){
           if(err) res.send('server error')
            // 跳转
            res.redirect('/stu')
        })


    })

})



// 启动服务
app.listen('8080', function () {
    console.log('服务已启动')
})
